1. Field of the Invention
The present invention relates generally to an error correction code, and in particular, to a device and method for convolutional encoding in a digital system. The present invention also pertains to a device and method for convolutional encoding in a radio communication system such as a satellite system, a digital cellular system, a W-CDMA system, and an IMT-2000 system.
2. Description of the Related Art
A convolutional code with a code rate R={fraction (1/2, 1/3)}, or xc2xc is typically used to correct errors in transmitted or recorded data in a communication system or data transmission/recording systems.
Puncturing can be used for a CDMA (Code Division Multiple Access) communication system to generate a new convolutional code with a higher code rate from a convolutional code with R={fraction (1/n)}. Puncturing is performed because the decoding complexity of a Viterbi decoder for R={fraction (k/n)} convolutional codes in a receiver increases exponentially as k increase. When an R={fraction (k/n)}(k greater than 1) convolutional code is used to produce a high rate convolutional code, the number of branches merged and departed in each state increases exponentially in a trellis of a Viterbi decoder. To reduce such decoding complexity, puncturing is used on the convolutional code having a code rate of R={fraction (1/n)}. The decoding complexity involved in the puncturing is almost the same as that of the convolutional code with R={fraction (1/n)}. The convolutional code puncturing technique provides error correction and increases the reliability of a digital communication system. This is a technical field which can improve the performance of future communication systems.
CDMA has evolved from the IS-95 standard which focused only on the transmission/reception of a voice signal to the IMT-2000 standard which provides the additional services of the transmission of high quality voice and moving pictures and Internet browsing.
Convolutional codes are expected to be used as forward error correction codes for a control channel, a voice channel, and a data transmission channel in the air interface of an IMT-2000 system. They are also considered as candidates for error correction of the air interface of a universal mobile telecommunications system (UMTS) developed by European Telecommunications Standards Institute (ETSI).
The proposed IMT-2000 standard recommends that convolutional codes be used as an error correction code for the control channel, voice channel, and data transmission channel in the air interface. However, the CDMA-2000 specification is not a final version and many details remain to be determined. In particular, problems with a puncturing pattern used for rate matching on a logical channel that is convolutionally encoded remain.
FIG. 1A illustrates the forward link structure of a forward supplemental channel among logical channels as provided by the CDMA 2000 specification.
Referring to FIG. 1A, a CRC (Cyclic Redundancy Check) generator 105 adds CRC data to corresponding received data (264 to 9192 bits) of different bit rates. A tail bit generator 110 adds corresponding tail bits to the output of the CRC generator 105. If an encoder 115 is a convolutional encoder with a constraint length k=9, the tail bit generator 110 adds 8 tail bits, and if it is a turbo encoder with k=4 and two component encoders, the tail bit generator 110 adds 6 tail bits and 2 reserved bits (RVBs).
The encoder 115 encodes bit data received from the tail bit generator 110 and outputs corresponding code symbols. The encoder 115 can be a convolutional encoder or a turbo encoder as stated above. In the case of the convolutional encoder, the encoder 115 has a constraint length k=9 and R=xe2x85x9c. The turbo encoder is not a main interest in the present invention and thus its description will be omitted. A block interleaver 120 receives the data from encoder 115 and interleaves the data.
The CDMA 2000 specification provides that a puncturer should delete every ninth symbol of an output sequence from a convolutional encoder with k=9 and R=⅓, in order to implement the convolutional encoder 115 with k=9 and R=xe2x85x9c.
FIG. 1B is a block diagram of a convolutional encoder for a forward supplemental channel according to the CDMA 2000 specification.
Referring to FIG. 1B, in the case that the encoder 115 of FIG. 1A is a convolutional encoder 125, the convolutional encoder 125 is composed of a convolutional encoder 130 with k=9 and R=⅓ for encoding input data and outputting corresponding symbols and a puncturer 135 for puncturing every ninth symbol of a encoded sequence received from the convolutional encoder 130.
FIG. 2 illustrates the structure of convolutional encoder 130 with k=9 and R=⅓ shown in FIG. 1B.
In FIG. 2, reference number 310 denotes shift registers and reference numbers 31a, 31b, and 31c denote modulo-2 adders coupled to their respective shift registers. Generator polynomials for the convolutional encoder 130 are
g0(x)=1+x2+x3+x5+x6+x7+x8
g1(x)=1+x+x3+x4+x7+x8
g2(x)=1+x+x2+x5+x8xe2x80x83xe2x80x83(1)
The convolutional encoder 130 generates three code symbols (C0, C1, C2) for each input information bit.
Meanwhile, the puncturer 135 punctures the last ninth symbol of code symbols received from the convolutional encoder 130 according to a puncturing pattern based on the CDMA 2000 specification. If the puncturing matrix is P, then the current puncturing pattern would be P={111 111 110}. From P={111 111 110}, three code symbols for one input bit form one subgroup and three subgroups for three successive input bits form one symbol group. The conventional puncturing pattern P={111 111 110} represents puncturing the last symbol in the third subgroup. This puncturing pattern exhibits the same performance as that of a puncturing pattern P={111 110 111} or P={110111111}.
However, it cannot be said that the above puncturing technique is optimal because other puncturing patterns may be better in terms of the weight spectrum and decoded symbol error probability of encoded symbols.
It is, therefore, an object of the present invention to provide a convolutional encoding device in a digital system which encodes input bits with a constraint length of 9, a code rate of ⅓, and a predetermined generator polynomial, and punctures corresponding symbols of the encoded symbols according to a new puncturing pattern having an improved performance relative to the conventional puncturing pattern.
It is another object of the present invention to provide a convolutional encoding device for encoding bits received on a CDMA 2000 forward supplemental channel and for puncturing corresponding symbols of the encoded symbols according to a new puncturing pattern having an improved performance relative to the conventional puncturing pattern.
It is a further object of the present invention to provide a CDMA 2000 forward supplemental channel transmitter for encoding bits transmitted on a CDMA 2000 forward supplemental channel and for puncturing corresponding symbols of the encoded symbols according to a new puncturing pattern having an improved performance relative to the conventional puncturing pattern.
These and other objects are achieved by providing a convolutional encoding device having a convolutional encoder and a puncturer. The convolutional encoder convolutionally encodes input bits with a constraint length of 9, a code rate of ⅓, and generator polynomials g0(x)=1+x2+x3+x5+x6+x7+x8, g1(x)=1+x+x3+x4+x7+x8, and g2(x)=1+x+x2+x5+x8 and outputs a subgroup of three encoded symbols for each input bit and a symbol group of three subgroups for three successive input bits. The puncturer punctures the first symbol of one subgroup in each symbol group received from the convolutional encoder.